home *** CD-ROM | disk | FTP | other *** search
- // Copyright (C) 1997-2002 Alias|Wavefront,
- // a division of Silicon Graphics Limited.
- //
- // The information in this file is provided for the exclusive use of the
- // licensees of Alias|Wavefront. Such users have the right to use, modify,
- // and incorporate this code into other products for purposes authorized
- // by the Alias|Wavefront license agreement, without fee.
- //
- // ALIAS|WAVEFRONT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- // INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- // EVENT SHALL ALIAS|WAVEFRONT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- // CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- // DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- // TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- // PERFORMANCE OF THIS SOFTWARE.
- //
- // Copyright (C) 1997-1998 Alias|Wavefront,
- // a division of Silicon Graphics Limited.
- //
- // The information in this file is provided for the exclusive use of the
- // licensees of Alias|Wavefront. Such users have the right to use, modify,
- // and incorporate this code into other products for purposes authorized
- // by the Alias|Wavefront license agreement, without fee.
- //
- // ALIAS|WAVEFRONT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- // INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- // EVENT SHALL ALIAS|WAVEFRONT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- // CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- // DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- // TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- // PERFORMANCE OF THIS SOFTWARE.
- //
- // $Source: /vobs/aw/Maya/src/RenderUISlice/UI/hypergraphAssignTextureToSelection.mel $
- //
- // $Author: jgross $
- // $Revision: /main/1 $
- // $Date: 1999/12/03 15:33:47 $
- //
-
- global proc hypergraphAssignTextureToSelection(string $texture)
- {
- string $materials[];
- string $material;
-
- $materials = `listConnections -destination true ($texture + ".outColor")`;
-
- if (size($materials) > 1) {
- error("Texture " + $texture + " has more than one material.");
- return;
- } else if (size($materials) == 0) {
- //
- // The texture is not associated with any material, so
- // we'll create one now.
- // Create a lambert shader, & connect this texture to it.
- string $savedSelection[] = `ls -sl`;
- $material = `shadingNode -asShader lambert -n ($texture + "Material")`;
- defaultNavigation
- -connectToExisting
- -source $texture
- -destination $material
- -force true;
-
- select $savedSelection;
- } else {
- $material = $materials[0];
- }
-
- string $shadingGroups[];
- string $shadingGroup;
-
- $shadingGroups = `listConnections -destination true ($material + ".outColor")`;
-
- if (size($shadingGroups) > 1) {
- error("Material " + $material + " has more than one shading group.");
- return;
- } else if (size($shadingGroups) == 0) {
- //
- // The material is not associated with any shading group, so
- // we'll create one now, and & connect this material to it.
- $shadingGroup = `sets -renderable true -noSurfaceShader true -empty -name ($texture + "SG")`;
- connectAttr -f ($material + ".outColor") ($shadingGroup + ".surfaceShader");
- } else {
- $shadingGroup = $shadingGroups[0];
- }
-
- sets -edit -forceElement $shadingGroup;
- }
-